package com.huxiaohui.ssbx.agent.enums;

import cn.hutool.core.util.EnumUtil;
import lombok.Getter;

/**
 * 智能体类型
 */
@Getter
public enum AgentTypeEnum {

    RE_ACT_PLANNING_AGENT("ReActPlanningAgent", "任务规划智能体"),
    OPEN_APP_AGENT("OpenAppAgent", "打开应用程序或文件智能体"),
    FILE_SYSTEM_AGENT("FileSystemAgent", "文件系统智能体，支持创建文件、写入文件、读取文件、删除文件、重命名文件、创建目录、删除目录、读取目录下的文件和文件夹"),
    APP_OPERATION_AGENT("AppOperationAgent", "应用操作智能体，可对桌面应用进行操作"),
    Get_Support_Operation_App_Agent("GetSupportOperationAppAgent", "获取支持操作的应用程序Agent");

    private final String agentName;
    private final String desc;

    AgentTypeEnum(String agentName, String desc) {
        this.agentName = agentName;
        this.desc = desc;
    }

    @Override
    public String toString() {
        return this.name();
    }


    /**
     * 通过智能体的名称查找枚举
     */
    public static AgentTypeEnum agentNameOf(String agentName) {
        return EnumUtil.getBy(AgentTypeEnum::getAgentName, agentName);
    }
}
